package repositorios;

import interfaces.IRepositorioEmpresa;

import java.util.ArrayList;
import java.util.List;

import modelos.Empresa;

public class RepositorioEmpresaArrayList implements IRepositorioEmpresa{

	private List<Empresa> dao;

	public RepositorioEmpresaArrayList(){
		dao = new ArrayList<Empresa>();
	}

	public void adicionarEmpresa(Empresa e) {
		dao.add(e);
	}

	public void removerEmpresa(Empresa e) {
		dao.remove(e);
	}

	public List<Empresa> listarEmpresa() {
		return dao;
	}

	public void editarEmpresa(Empresa editar) {
		int index = busca(editar);
		if(index != -1){
			dao.remove(index);
			dao.add(index, editar);
		}
	}

	public Empresa buscarEmpresaPorId(Long id) {
		Empresa retorno = null;
		for(Empresa e : dao){
			if(e.getId() == id){
				retorno = e;
			}
		}
		return retorno;
	}

	public List<Empresa> buscarLike(String campo, String valor) {
		List<Empresa> retorno = new ArrayList<Empresa>();
		for(Empresa e : dao){
			if(campo.equals("cnpj")){
				if(e.getCnpj().equals(valor)){
					retorno.add(e);
				}
			}
			else if(campo.equals("nome")){
				if(e.getNome().equals(valor)){
					retorno.add(e);
				}
			}
		}
		return retorno;
	}

	private int busca(Empresa e){
		int index = -1;
		for(int i = 0; i < dao.size(); i++){
			if(dao.get(i).equals(e)){
				index = i;
			}
		}
		return index;
	}
}
